home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / standards / sgml / nist / incs / parse1a.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-09-13  |  4.3 KB  |  97 lines

  1. /* National Institute of Standards and Technology (NIST)
  2. /* National Computer System Laboratory (NCSL)
  3. /* Office Systems Engineering (OSE) Group
  4. /* ********************************************************************
  5. /*                            D I S C L A I M E R
  6. /*                              (March 8, 1989)
  7. /*  
  8. /* There is no warranty for the NIST NCSL OSE SGML parser and/or the NIST
  9. /* NCSL OSE SGML parser validation suite.  If the SGML parser and/or
  10. /* validation suite is modified by someone else and passed on, NIST wants
  11. /* the parser's recipients to know that what they have is not what NIST
  12. /* distributed, so that any problems introduced by others will not
  13. /* reflect on our reputation.
  14. /* 
  15. /* Policies
  16. /* 
  17. /* 1. Anyone may copy and distribute verbatim copies of the SGML source
  18. /* code as received in any medium.
  19. /* 
  20. /* 2. Anyone may modify your copy or copies of SGML parser source code or
  21. /* any portion of it, and copy and distribute such modifications provided
  22. /* that all modifications are clearly associated with the entity that
  23. /* performs the modifications.
  24. /* 
  25. /* NO WARRANTY
  26. /* ===========
  27. /* 
  28. /* NIST PROVIDES ABSOLUTELY NO WARRANTY.  THE SGML PARSER AND VALIDATION
  29. /* SUITE ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  30. /* EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  31. /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  32. /* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
  33. /* WITH YOU.  SHOULD THE SGML PARSER OR VALIDATION SUITE PROVE DEFECTIVE,
  34. /* YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
  35. /* 
  36. /* IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL NIST BE LIABLE FOR
  37. /* DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
  38. /* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
  39. /* INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
  40. /* BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A
  41. /* FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY
  42. /* NIST) THE PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF
  43. /* SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
  44. */
  45.  
  46. /************************************************************************/
  47. /*   TITLE:          SGML PARSER                                        */
  48. /*   SYSTEM:         DTD PROCESSOR                                      */
  49. /*   SUBSYSTEM:                                                         */
  50. /*   SOURCE FILE:    PARSE1A.H                                          */
  51. /*   AUTHOR:         Jim Heath                                          */
  52. /*                                                                      */
  53. /*   DATE CREATED:                                                      */
  54. /*   LAST MODIFIED:                                                     */
  55. /*                                                                      */
  56. /*                  REVISIONS                                           */
  57. /*   WHEN      WHO            WHY                                       */
  58. /************************************************************************/
  59. #define    NO       0
  60. #define    YES      1
  61. #define    JUNK     0x7BCD
  62. /*#define    JDEBUG   1*/
  63. enum FLAG {START, LEFT, RIGHT};
  64. enum RFLAG {STAG_REQD, STAG_OPTIONAL};
  65. /* ==================================================================== */
  66. #define ISOPTIONAL(x) ((x == '?') || (x == '*'))
  67. #define ISCONNECTOR(x) ((x == COMMA) || (x == AND) || (x == OR))
  68. #define ISTERMINAL(x)  ((x != COMMA) && (x != AND) && (x != OR))
  69. /* ==================================================================== */
  70. #define    MAXNODES 256
  71. /* ==================================================================== */
  72. typedef  struct treenode {
  73.            int  Tleft;
  74.            int  Tright;
  75.            int  Tvalue;
  76.            int  Toi;
  77.            enum CONTEXT Tcontext;
  78.            int  Tandcount;
  79.            int  Tinfo;
  80.          } TREENODE;
  81. /* ==================================================================== */
  82.  
  83. /*global*/  int main();
  84. /*global*/  void bldsymbltbl();
  85. /*global*/  int bldtree();
  86. /*global*/  void traverse();
  87. /*global*/  int traverseleft();
  88. /*global*/  int traverseright();
  89. /*global*/  int oifnc();
  90. /*global*/  void printnode();
  91. /*global*/  void heading();
  92. /*global*/  void error();
  93. /*global*/  void doopts();
  94. /*global*/  char *getmsg();
  95. /*global*/  int reqmntfnc();
  96.  
  97.